Towards a Performance Tool Interface for OpenMP: An Approach Based on Directive Rewriting
نویسندگان
چکیده
In this article we propose a “standard” performance tool interface for OpenMP, similar in spirit to the MPI profiling interface in its intent to define a clear and portable API that makes OpenMP execution events visible to performance libraries. When used together with the MPI profiling interface, it also allows tools to be built for hybrid applications that mix shared and distributed memory programming. We describe an instrumentation approach based on OpenMP directive rewriting that generates calls to the interface and passes context information (e.g., source code locations) in a portable and efficient way. Our proposed OpenMP performance API further allows user functions and arbitrary code regions to be marked and performance measurement to be controlled using new proposed OpenMP directives. The directive transformations we define are implemented in a source-tosource translation tool called Opari. We have used it to integrate the Tau performance analysis framework [13] and the automatic event trace analyzer expert [17, 18] with the proposed OpenMP performance interface. Together, these tools show that a portable and robust solution to performance analysis of OpenMP and hybrid applications is possible.
منابع مشابه
Exploring Programming Multi-GPUs using OpenMP & OpenACC-based Hybrid Model
Heterogeneous computing come with tremendous potential and is a leading candidate for scientific applications that are becoming more and more complex. Accelerators such as GPUs whose computing momentum is growing faster than ever offer application performance when compute intensive portions of an application are offloaded to them. It is quite evident that future computing architectures are movi...
متن کاملOpenMP Performance Analysis Approach in the INTONE Project
In this paper we present the general approach adopted in the INTONE project for performance analysis and optimization of OpenMP applications. The approach considers the following components: runtime interface (instrumentation and threading support) and its library implementation, compilation environments for Fortran90 and C/C++, and an extension of the VAMPIR graphical tool. The paper also incl...
متن کاملWhat Multilevel Parallel Programs Do When You Are Not Watching: A Performance Analysis Case Study Comparing MPI/OpenMP, MLP, and Nested OpenMP
With the currenr trend h padkl cxmpckr xchitpctllrps towards clusters of shared memory symmetric multi-processors, parallel programming techniques have evolved that support parallelism beyond a single level. When comparing the performance of applications based on different programming paradigms, it is important to differentiate between the inftuence of the programming model itself and other fac...
متن کاملDesign and Implementation of the OpenMP Programming Interface on Linux-based SMP Clusters
Recently, cluster computing has successfully provided a cost-effective solution for data-intensive applications. In order to make the programming on clusters easy, many programming toolkits such as MPICH, PVM, and DSM have been proposed in past researches. However, these programming toolkits are not easy enough for common users to develop parallel applications. To address this problem, we have ...
متن کاملIntra node parallelization of MPI programs with OpenMP
The availability of multiprocessors and high performance networks ooer the opportunity to construct CLUMPs (Cluster of Multiprocessors) and use them as parallel computing platforms. The main distinctive feature of the CLUMP architecture over the usual parallel computers is its hybrid memory model (message passing between the nodes and shared memory inside the nodes). Some of the primary issues ...
متن کامل